package com.cdp.system.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cdp.common.core.domain.entity.PlatformMetrics;
import com.cdp.system.mapper.PlatformMetricsMapper;
import com.cdp.system.service.PlatformMetricsService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class PlatformMetricsServiceImpl
        extends ServiceImpl<PlatformMetricsMapper, PlatformMetrics>
        implements PlatformMetricsService {

    @Override
    @Transactional
    public void incrementTotalVisits() {
        // 使用 LambdaQueryWrapper 查询是否存在平台总访问记录
        LambdaQueryWrapper<PlatformMetrics> wrapper = new LambdaQueryWrapper<>();
        PlatformMetrics existingMetrics = getOne(wrapper,false); // 查询平台访问记录，如果没有返回 null

        if (existingMetrics == null) {
            // 如果没有记录，插入新的平台访问记录
            PlatformMetrics newMetrics = new PlatformMetrics();
            newMetrics.setTotalVisits(1L); // 初始访问次数为 1
            save(newMetrics); // 保存记录
        } else {
            // 如果记录已存在，更新访问次数
            existingMetrics.setTotalVisits(existingMetrics.getTotalVisits() + 1);
            updateById(existingMetrics); // 更新访问记录
        }
    }
}
